SlideShare a Scribd company logo
1 Programming Convention Presenter : Nguyễn Bảo Trung
2 Nội dung Tổngquanvề Programming Convention Mộtsốphongcáchlậptrìnhcũ Đánhgiácácthóiquencũ Cácquytắcviết code của Steve McConnell Lợiíchcủaviệctrìnhbầycẩnthận
3 Tổngquanvề Programming Convention (PC) Viết code nhưthếnào? Cáchviết code cóảnhhưởngđếnkhảnăngtưduyvàhiệusuấtlàmviệckhông? Bài test Bàitập 1 Bàitập 2
4 Tổngquanvề Programming Convention (Continue) Cáchviết code ảnhhưởngrấtlớnđếnkhảnăngtưduyvàhiệusuâtlàmviệc Cầnphảiviết code theokiểugìđểtăngkhảnăngtưduyvàhiệusuấtlàmviệc? Viết code theochuẩn Thêmchúthíchcầnthiết, theochuẩn PC thểhiệnbởicáchviết code và comment PC tốtlàcáchviết code và comment theochuẩn Nếukhôngviếttheochuẩnthìsao?
5 Mộtsốphongcáchlậptrìnhcũ Khôngcóchuẩn Thíchviếtgìthìviếttuỳtheohứng Khôngcómột logic tổngthểtrongcáchtrìnhbàychươngtrình Tựđặtramộtsốquytắcviết Tiếtkiệmdòng Tiếtkiệmcột Lãngphídòng Lãngphícột Đãcóchuẩnnhưngchưathựcsựtốt
6 Đánhgiácácthóiquencũ Dễviết, thuậnmắt (theocảmtính) Khôngnhanhnhưtanghĩ Dễgâynhầmlẫn Luônthừathiếu Begin…End Rấtkhóđọchiểu Cónhiềulỗi do hiệuứngphụ(Side effects) Rấtkhóvàmấtnhiềuthờigianchoviệcsửalỗi
7 Cácquytắcviết code của Steve McConnell Địnhlýcơsởcủađịnhdạng Cơsởlýthuyếtcủađịnhdạnglàcáchtrìnhbầyrõràng, sángsủanổibậtđượccấutrúc logic củachươngtrình Chuẩnmựcchocáchtrìnhbầychươngtrìnhcóhiệuquả Mộtphầnnhỏtronglậptrìnhlàđểmáytínhcóthểđọcđượcnó Phầnlớnhơnlàviếtcácmãlệnhchochươngtrìnhchạyđượctheođúngchứcnăngvàlàmsaođể con ngườicóthểđọcđượcnó
8 Cáckỹnăngtrìnhbầy Dấutrắng (dấucách, dấu Tab, xuốngdòng, dòngtrắng,…) Phânnhóm Dòngtrống Sắpxếpthẳnghàng Thụtvào Sửdụngcácdấungoặcđơn Thêmchúthíchvàochươngtrình
9 Cáckiểutrìnhbầy Khối Pure KhốiEndline Khối Emulating Pure Khốibaobởi Begin-end
10 KhốiPure A B C D
11 Khối Endline A B C D
12 Khối Emulating Pure Begin A B C end D
13 Khối bao bởi Begin-end Begin end A B C D
14 Khối nào là tốt nhất Khối Endline  Tồi nhất Khối Pure  Thích hợp với ADA, VB, … Khối Begin-End  Thích hợp với C, Pascal, … Khối Emulating Pure  Có thể dùng cho cả ADA, VB, C, Pascal, …
15 Các kỹ năng khác Sử dụng các dòng trống giữa các đoạn chương trình Định dạng các khối lệnh đơn phù hợp Đối với các biểu thức phức tạp hãy đặt từng điều kiện trên từng dòng riêng (VD) Tránh Goto
16 Độ dài mỗi dòng lệnh  Nguyên tắc chung đưa ra cho giới hạn về độ dài mỗi dòng lệnh thường không quá 80 ký tự. Sau đây là một số lý do Các dòng có quá 80 ký tự rất khó theo dõi Giới hạn 80 ký tự trong một dòng không làm cản trở tới các vòng lệnh xếp chồng (như lệnh lặp, lệnh điều kiện...) Các dòng dài quá 80 ký tự không thích hợp với khổ giấy in 8.5x11 Các khổ giấy khác rất khó gộp trong file
17 Sử dụng các dấu cách cho rõ ràng Sử dụng dấu cách làm cho các biểu thức logic dễ đọc Sử dụng dấu cách làm cho dễ so sánh
18 Ví dụ EmployeeName =  InputName EmployeeSalary =  InputSalary EmployeeBirthdate	=  InputBirthdate BossTitle =  Title BossDept =  Department EmployeeName		=  InputName EmployeeSalary		=  InputSalary EmployeeBirthdate	=  InputBirthdate BossTitle			=  Title BossDept			=  Department
19 Chỉ sử dụng một dòng đối với một dòng lệnh Đặt mỗi lệnh trên một dòng sẽ không làm mất đi cấu trúc của các lệnh phức hợp Tạo cho ta cảm giác đơn giản hơn dễ theo dõi Khi bạn cần tìm một dòng lệnh đặc biệt chỉ cần nhìn theo lề bên trái của đoạn mã Rất dễ kiểm soát lỗi (khi biết dòng lỗi)
20 Trong C, tránh Side effects Printf(“%d  %d ”, ++n, n+2);  ++n; Printf(“%d  %d ”, n , n+2);
21 Cách trình bầy các dữ liệu khai báo		 Sắp xếp thẳng hàng đối với các dữ liệu khai báo Chỉ khai báo một dữ liệu khai báo trên một dòng Thứ tự khai báo rõ ràng
22 Trình bầy các thủ tục Sử dụng các dòng cách để phân chia các phần của thủ tục Thụt các thủ tục vào với số đếm chuẩn void   InsertionSort() {	 	int	FirstElmt; 	int	LastElmt; }
23 Chú thích (Comment) Chú thích hay không chú thích? Tác dụng của chú thích trong chương trình
24 Tác dụng của chú thích trong chương trình Khi kỹ năng viết chú thích chưa tốt Các lời chú thích cho chương trình chiếm mất rất nhiều thời gian Lời chú thích rất khó thay đổi Các từ ngữ được dùng vào để giải thích rất khó diễn đạt được hết Khi kỹ năng viết chú thích tốt Làm chương trình trong sáng, dễ đọc, dễ hiểu Thể hiện tốt cấu trúc chương trình
25 Lợi ích của việc trình bầy cẩn thận Thể hiện tốt cấu trúc lôgic của mã lệnh Cải thiện khả năng đọc Bảo đảm sự chính xác trong các thay đổi Các lợi ích hệ quả của các lợi ích trên Tiết kiệm thời gian sửa lỗi Tăng khả năng làm việc theo nhóm, …
26 Tóm tắt Bạn đã hiểu được thế nào PC PC của Steve McConnell Lợi ích của việc tuân theo một PC tốt
27 Vậy các bạn thu được gì qua buổi ngày hôm nay?
Thực hành Bài tập Kết quả 28

More Related Content

Similar to Code convention

Ch assembly
Ch assemblyCh assembly
Ch assembly
Jean Okio
 
How to write good code
How to write good code How to write good code
How to write good code
Minh Hoang
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 
2 kien truc phan mem
2 kien truc phan mem2 kien truc phan mem
2 kien truc phan mem
Ly hai
 
C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)Nguyễn Phụng
 
lap trinh assembly cho VXL
lap trinh  assembly cho VXLlap trinh  assembly cho VXL
lap trinh assembly cho VXLThân Khương
 
HMI.pptx
HMI.pptxHMI.pptx
HMI.pptx
LHong526661
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Nhật Nguyễn Khắc
 
Ky thuat lap trinh c++
Ky thuat lap trinh c++Ky thuat lap trinh c++
Ky thuat lap trinh c++
ptquang160492
 
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)Tấn Nhật
 
86227349 giao-trinh-lap-trinh-c
86227349 giao-trinh-lap-trinh-c86227349 giao-trinh-lap-trinh-c
86227349 giao-trinh-lap-trinh-cHoa Cỏ May
 
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)Informatics and Maths
 
Ngon ngu lap trinh c&c++
Ngon ngu lap trinh c&c++Ngon ngu lap trinh c&c++
Ngon ngu lap trinh c&c++
Tiến Quang Phan
 
Ngan hang he thong nhung
Ngan hang he thong nhungNgan hang he thong nhung
Ngan hang he thong nhungCao Toa
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPT
MasterCode.vn
 
tin học lớp 7
tin học lớp 7tin học lớp 7
tin học lớp 7
Yến Nhỏ
 
Tin học lớp 8
Tin học lớp 8Tin học lớp 8
Tin học lớp 8
Yến Nhỏ
 

Similar to Code convention (20)

Ch assembly
Ch assemblyCh assembly
Ch assembly
 
How to write good code
How to write good code How to write good code
How to write good code
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
2 kien truc phan mem
2 kien truc phan mem2 kien truc phan mem
2 kien truc phan mem
 
Tin 8
Tin 8Tin 8
Tin 8
 
C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)C++ can ban(dung thu vien iostream)
C++ can ban(dung thu vien iostream)
 
lap trinh assembly cho VXL
lap trinh  assembly cho VXLlap trinh  assembly cho VXL
lap trinh assembly cho VXL
 
HMI.pptx
HMI.pptxHMI.pptx
HMI.pptx
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
 
Ky thuat lap trinh c++
Ky thuat lap trinh c++Ky thuat lap trinh c++
Ky thuat lap trinh c++
 
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
 
86227349 giao-trinh-lap-trinh-c
86227349 giao-trinh-lap-trinh-c86227349 giao-trinh-lap-trinh-c
86227349 giao-trinh-lap-trinh-c
 
C++ dai hoc cong nghe
C++ dai hoc cong ngheC++ dai hoc cong nghe
C++ dai hoc cong nghe
 
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
Ngon ngu lap trinh c&c++ (pham hong thai coltech vnu)
 
Ngon ngu lap trinh c&c++
Ngon ngu lap trinh c&c++Ngon ngu lap trinh c&c++
Ngon ngu lap trinh c&c++
 
Ngan hang he thong nhung
Ngan hang he thong nhungNgan hang he thong nhung
Ngan hang he thong nhung
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPT
 
9 ngon ngu_lap_trinh
9 ngon ngu_lap_trinh9 ngon ngu_lap_trinh
9 ngon ngu_lap_trinh
 
tin học lớp 7
tin học lớp 7tin học lớp 7
tin học lớp 7
 
Tin học lớp 8
Tin học lớp 8Tin học lớp 8
Tin học lớp 8
 

Recently uploaded

Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
onLongV
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
12D241NguynPhmMaiTra
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
hieutrinhvan27052005
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
AnhPhm265031
 
FSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptxFSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptx
deviv80273
 
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docxVăn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
metamngoc123
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
khanhthy3000
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
PhiTrnHngRui
 
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
NguynDimQunh33
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
Nguyen Thanh Tu Collection
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
QucHHunhnh
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
lamluanvan.net Viết thuê luận văn
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
lmhong80
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
vivan030207
 
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀNGiải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
linh miu
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
ChuPhan32
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
SmartBiz
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
Nguyen Thanh Tu Collection
 

Recently uploaded (18)

Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
 
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptxLỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
LỊCH SỬ 12 - CHUYÊN ĐỀ 10 - TRẮC NGHIỆM.pptx
 
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thươngPLĐC-chương 1 (1).ppt của trường  ĐH Ngoại thương
PLĐC-chương 1 (1).ppt của trường ĐH Ngoại thương
 
Halloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary schoolHalloween vocabulary for kids in primary school
Halloween vocabulary for kids in primary school
 
FSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptxFSSC 22000 version 6_Seminar_FINAL end.pptx
FSSC 22000 version 6_Seminar_FINAL end.pptx
 
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docxVăn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
Văn 7. Truyện ngụ ngôn Rùa và thỏ+ Viết PT nhân vật.docx
 
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
100 DẪN CHỨNG NGHỊ LUẬN XÃ HỘiI HAY.docx
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
 
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc40 câu hỏi - đáp Bộ  luật dân sự năm  2015 (1).doc
40 câu hỏi - đáp Bộ luật dân sự năm 2015 (1).doc
 
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
BÀI TẬP BỔ TRỢ TIẾNG ANH I-LEARN SMART WORLD 9 CẢ NĂM CÓ TEST THEO UNIT NĂM H...
 
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdfTHONG BAO nop ho so xet tuyen TS6 24-25.pdf
THONG BAO nop ho so xet tuyen TS6 24-25.pdf
 
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang ThiềuBiểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
Biểu tượng trăng và bầu trời trong tác phẩm của Nguyễn Quang Thiều
 
insulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyetinsulin cho benh nhan nam vien co tang duong huyet
insulin cho benh nhan nam vien co tang duong huyet
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
 
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀNGiải phẫu tim sau đại học- LÊ QUANG TUYỀN
Giải phẫu tim sau đại học- LÊ QUANG TUYỀN
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
 
Smartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024juneSmartbiz_He thong MES nganh may mac_2024june
Smartbiz_He thong MES nganh may mac_2024june
 
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 - SÁCH MỚI - FORM BÀI TẬP 2025 (DÙNG CHUNG ...
 

Code convention

  • 1. 1 Programming Convention Presenter : Nguyễn Bảo Trung
  • 2. 2 Nội dung Tổngquanvề Programming Convention Mộtsốphongcáchlậptrìnhcũ Đánhgiácácthóiquencũ Cácquytắcviết code của Steve McConnell Lợiíchcủaviệctrìnhbầycẩnthận
  • 3. 3 Tổngquanvề Programming Convention (PC) Viết code nhưthếnào? Cáchviết code cóảnhhưởngđếnkhảnăngtưduyvàhiệusuấtlàmviệckhông? Bài test Bàitập 1 Bàitập 2
  • 4. 4 Tổngquanvề Programming Convention (Continue) Cáchviết code ảnhhưởngrấtlớnđếnkhảnăngtưduyvàhiệusuâtlàmviệc Cầnphảiviết code theokiểugìđểtăngkhảnăngtưduyvàhiệusuấtlàmviệc? Viết code theochuẩn Thêmchúthíchcầnthiết, theochuẩn PC thểhiệnbởicáchviết code và comment PC tốtlàcáchviết code và comment theochuẩn Nếukhôngviếttheochuẩnthìsao?
  • 5. 5 Mộtsốphongcáchlậptrìnhcũ Khôngcóchuẩn Thíchviếtgìthìviếttuỳtheohứng Khôngcómột logic tổngthểtrongcáchtrìnhbàychươngtrình Tựđặtramộtsốquytắcviết Tiếtkiệmdòng Tiếtkiệmcột Lãngphídòng Lãngphícột Đãcóchuẩnnhưngchưathựcsựtốt
  • 6. 6 Đánhgiácácthóiquencũ Dễviết, thuậnmắt (theocảmtính) Khôngnhanhnhưtanghĩ Dễgâynhầmlẫn Luônthừathiếu Begin…End Rấtkhóđọchiểu Cónhiềulỗi do hiệuứngphụ(Side effects) Rấtkhóvàmấtnhiềuthờigianchoviệcsửalỗi
  • 7. 7 Cácquytắcviết code của Steve McConnell Địnhlýcơsởcủađịnhdạng Cơsởlýthuyếtcủađịnhdạnglàcáchtrìnhbầyrõràng, sángsủanổibậtđượccấutrúc logic củachươngtrình Chuẩnmựcchocáchtrìnhbầychươngtrìnhcóhiệuquả Mộtphầnnhỏtronglậptrìnhlàđểmáytínhcóthểđọcđượcnó Phầnlớnhơnlàviếtcácmãlệnhchochươngtrìnhchạyđượctheođúngchứcnăngvàlàmsaođể con ngườicóthểđọcđượcnó
  • 8. 8 Cáckỹnăngtrìnhbầy Dấutrắng (dấucách, dấu Tab, xuốngdòng, dòngtrắng,…) Phânnhóm Dòngtrống Sắpxếpthẳnghàng Thụtvào Sửdụngcácdấungoặcđơn Thêmchúthíchvàochươngtrình
  • 9. 9 Cáckiểutrìnhbầy Khối Pure KhốiEndline Khối Emulating Pure Khốibaobởi Begin-end
  • 11. 11 Khối Endline A B C D
  • 12. 12 Khối Emulating Pure Begin A B C end D
  • 13. 13 Khối bao bởi Begin-end Begin end A B C D
  • 14. 14 Khối nào là tốt nhất Khối Endline Tồi nhất Khối Pure Thích hợp với ADA, VB, … Khối Begin-End Thích hợp với C, Pascal, … Khối Emulating Pure Có thể dùng cho cả ADA, VB, C, Pascal, …
  • 15. 15 Các kỹ năng khác Sử dụng các dòng trống giữa các đoạn chương trình Định dạng các khối lệnh đơn phù hợp Đối với các biểu thức phức tạp hãy đặt từng điều kiện trên từng dòng riêng (VD) Tránh Goto
  • 16. 16 Độ dài mỗi dòng lệnh Nguyên tắc chung đưa ra cho giới hạn về độ dài mỗi dòng lệnh thường không quá 80 ký tự. Sau đây là một số lý do Các dòng có quá 80 ký tự rất khó theo dõi Giới hạn 80 ký tự trong một dòng không làm cản trở tới các vòng lệnh xếp chồng (như lệnh lặp, lệnh điều kiện...) Các dòng dài quá 80 ký tự không thích hợp với khổ giấy in 8.5x11 Các khổ giấy khác rất khó gộp trong file
  • 17. 17 Sử dụng các dấu cách cho rõ ràng Sử dụng dấu cách làm cho các biểu thức logic dễ đọc Sử dụng dấu cách làm cho dễ so sánh
  • 18. 18 Ví dụ EmployeeName = InputName EmployeeSalary = InputSalary EmployeeBirthdate = InputBirthdate BossTitle = Title BossDept = Department EmployeeName = InputName EmployeeSalary = InputSalary EmployeeBirthdate = InputBirthdate BossTitle = Title BossDept = Department
  • 19. 19 Chỉ sử dụng một dòng đối với một dòng lệnh Đặt mỗi lệnh trên một dòng sẽ không làm mất đi cấu trúc của các lệnh phức hợp Tạo cho ta cảm giác đơn giản hơn dễ theo dõi Khi bạn cần tìm một dòng lệnh đặc biệt chỉ cần nhìn theo lề bên trái của đoạn mã Rất dễ kiểm soát lỗi (khi biết dòng lỗi)
  • 20. 20 Trong C, tránh Side effects Printf(“%d %d ”, ++n, n+2); ++n; Printf(“%d %d ”, n , n+2);
  • 21. 21 Cách trình bầy các dữ liệu khai báo Sắp xếp thẳng hàng đối với các dữ liệu khai báo Chỉ khai báo một dữ liệu khai báo trên một dòng Thứ tự khai báo rõ ràng
  • 22. 22 Trình bầy các thủ tục Sử dụng các dòng cách để phân chia các phần của thủ tục Thụt các thủ tục vào với số đếm chuẩn void InsertionSort() { int FirstElmt; int LastElmt; }
  • 23. 23 Chú thích (Comment) Chú thích hay không chú thích? Tác dụng của chú thích trong chương trình
  • 24. 24 Tác dụng của chú thích trong chương trình Khi kỹ năng viết chú thích chưa tốt Các lời chú thích cho chương trình chiếm mất rất nhiều thời gian Lời chú thích rất khó thay đổi Các từ ngữ được dùng vào để giải thích rất khó diễn đạt được hết Khi kỹ năng viết chú thích tốt Làm chương trình trong sáng, dễ đọc, dễ hiểu Thể hiện tốt cấu trúc chương trình
  • 25. 25 Lợi ích của việc trình bầy cẩn thận Thể hiện tốt cấu trúc lôgic của mã lệnh Cải thiện khả năng đọc Bảo đảm sự chính xác trong các thay đổi Các lợi ích hệ quả của các lợi ích trên Tiết kiệm thời gian sửa lỗi Tăng khả năng làm việc theo nhóm, …
  • 26. 26 Tóm tắt Bạn đã hiểu được thế nào PC PC của Steve McConnell Lợi ích của việc tuân theo một PC tốt
  • 27. 27 Vậy các bạn thu được gì qua buổi ngày hôm nay?
  • 28. Thực hành Bài tập Kết quả 28